#ifndef SQLHELPER_H
#define SQLHELPER_H

#include "eventInfo.h"

#include <QDebug>
#include <QDate>
#include <QObject>

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>

class SQLHelper : public QObject {
    Q_OBJECT

public:
    explicit SQLHelper(QObject *parent = nullptr);
    ~SQLHelper();

    // 初始化数据库连接
    QSqlDatabase createConnection(const QString &dbName);

    // 打开数据库连接
    bool openConnection(QSqlDatabase db);
    // 关闭数据库连接
    void closeConnection(QSqlDatabase db);

    // 执行数据库查询
    int executeQuery(QSqlDatabase db, const QString &query);
    // 执行数据库插入操作
    bool executeInsert(QSqlDatabase db, const QString &query, const QStringList &values);

    // 查询指定日期的事件数量
    int queryEventCountByDate(QSqlDatabase db, const QString &date);

    // 向tb_event表插入新事件
    bool insertEvent(QSqlDatabase db, const QString &eventId, const QString &date, const QString &event, int status);

    QList<EventInfo> queryEventsByDate(QSqlDatabase db, const QString &date);

    bool updateStatusById(QSqlDatabase db, const QString& eventId, int newStatus);


private:
    QSqlDatabase db;
};

#endif // SQLITEHELPER_H
